home *** CD-ROM | disk | FTP | other *** search
- dnl Process this file with autoconf to produce a configure script.
- dnl
- dnl And be careful when changing it! If you must add tests with square
- dnl brackets, be sure changequote invocations surround it.
- dnl
- dnl
- AC_PREREQ(2.5)dnl v2.5 needed for --bindir et al
- AC_INIT(as.h)dnl
- dnl
- user_bfd_gas=
- AC_ARG_ENABLE(bfd-assembler,
- [ --enable-bfd-assembler use BFD back end for writing object files],
- [case "${enableval}" in
- yes) need_bfd=yes user_bfd_gas=yes ;;
- no) user_bfd_gas=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
- esac])dnl
- AC_ARG_ENABLE(targets,
- [ targets alternative target configurations besides the primary],
- [case "${enableval}" in
- yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
- ;;
- no) enable_targets= ;;
- *) enable_targets=$enableval ;;
- esac])dnl
- AC_ARG_ENABLE(shared,
- [ --enable-shared build shared BFD library],
- [case "${enableval}" in
- yes) shared=true shared_bfd=true shared_opcodes=true ;;
- no) shared=false ;;
- *bfd*opcodes*) shared=true shared_bfd=true shared_opcodes=true ;;
- *opcodes*bfd*) shared=true shared_bfd=true shared_opcodes=true ;;
- *bfd*) shared=true shared_bfd=true ;;
- *opcodes*) shared=true shared_opcodes=true ;;
- *) shared=false ;;
- esac])dnl
-
- # Generate a header file -- gets more post-processing by Makefile later.
- AC_CONFIG_HEADER(conf)
-
- dnl For recursion to work right, this must be an absolute pathname.
- AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
- AC_CANONICAL_SYSTEM
- AC_ARG_PROGRAM
-
- te_file=generic
-
- canon_targets=""
- if test -n "$enable_targets" ; then
- for t in `echo $enable_targets | sed 's/,/ /g'`; do
- result=`$ac_config_sub $t 2>/dev/null`
- if test -n "$result" ; then
- canon_targets="$canon_targets $result"
- # else
- # # Permit "all", etc. We don't support it yet though.
- # canon_targets="$canon_targets $t"
- fi
- done
- GAS_UNIQ(canon_targets)
- fi
-
- emulations=""
-
- for this_target in $target $canon_targets ; do
-
- eval `echo $this_target | sed 's/^\(.*\)-\(.*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
-
- # check for architecture variants
- case ${cpu} in
- armeb) cpu_type=arm endian=big ;;
- arm*) cpu_type=arm endian=little ;;
- hppa*) cpu_type=hppa ;;
- changequote(,)dnl
- i[456]86) cpu_type=i386 ;;
- m680[012346]0) cpu_type=m68k ;;
- m68008) cpu_type=m68k ;;
- m683??) cpu_type=m68k ;;
- changequote([,])dnl
- m8*) cpu_type=m88k ;;
- mips*el) cpu_type=mips endian=little;;
- mips*) cpu_type=mips endian=big ;;
- powerpcle*) cpu_type=ppc endian=little ;;
- powerpc*) cpu_type=ppc endian=big ;;
- rs6000*) cpu_type=ppc ;;
- sparc64) cpu_type=sparc want_sparc_v9=true ;;
- sparc*) cpu_type=sparc ;;
- *) cpu_type=${cpu} ;;
- esac
-
- if test ${this_target} = $target ; then
- target_cpu_type=${cpu_type}
- elif test ${target_cpu_type} != ${cpu_type} ; then
- continue
- fi
-
- targ=${cpu_type}
- generic_target=${cpu_type}-$vendor-$os
- dev=no
- bfd_gas=no
- em=generic
-
- # assign object format
- case ${generic_target} in
- a29k-*-coff) fmt=coff targ=ebmon29k ;;
- a29k-amd-udi) fmt=coff targ=ebmon29k ;;
- a29k-amd-ebmon) fmt=coff targ=ebmon29k ;;
- a29k-nyu-sym1) fmt=coff targ=ebmon29k ;;
- a29k-*-vxworks*) fmt=coff ;;
-
- alpha-*-netware*) fmt=ecoff ;;
- alpha-*-osf*) fmt=ecoff ;;
- alpha-*-linuxecoff*) fmt=ecoff ;;
- alpha-*-linux*) fmt=elf em=linux ;;
-
-
- arm-*-riscix*) fmt=aout targ=arm-lit em=riscix ;;
- arm-*-aout) fmt=aout
- case "$endian" in
- big) targ=arm-big ;;
- *) targ=arm-lit ;;
- esac
- ;;
- arm-*-coff) fmt=coff ;;
- arm-*-riscix*) fmt=aout ;;
- arm-*-pe) fmt=coff targ=armcoff em=pe ;;
-
- hppa-*-*elf*) fmt=elf em=hppa ;;
- hppa-*-lites*) fmt=elf em=hppa ;;
- hppa-*-osf*) fmt=som em=hppa ;;
- hppa-*-hpux*) fmt=som em=hppa ;;
- hppa-*-bsd*) fmt=som em=hppa ;;
- hppa-*-hiux*) fmt=som em=hppa ;;
-
- h8300-*-coff) fmt=coff ;;
-
- i386-ibm-aix*) fmt=coff targ=i386coff
- em=i386aix ;;
- i386-*-bsd*) fmt=aout em=386bsd ;;
- i386-*-netbsd0.8) fmt=aout em=386bsd ;;
- i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
- i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
- i386-*-linux*coff*) fmt=coff em=linux
- targ=i386coff ;;
- i386-*-linux*) fmt=elf em=linux ;;
- i386-*-lynxos*) fmt=coff targ=i386coff
- em=lynx ;;
- i386-*-sysv4* | i386-*-solaris* | i386-*-elf | i386-*-freebsdelf*)
- fmt=elf ;;
- i386-*-sco*elf*) fmt=elf targ=sco5 ;;
- i386-*-coff | i386-*-sysv* | i386-*-sco* | i386-*-isc*)
- fmt=coff targ=i386coff ;;
- i386-*-vsta) fmt=aout ;;
- i386-*-go32) fmt=coff targ=i386coff ;;
- i386-*-rtems*) fmt=coff targ=i386coff ;;
- i386-*-gnu*) fmt=elf ;;
- i386-*-mach*)
- fmt=aout em=mach bfd_gas=yes ;;
- i386-*-msdos*) fmt=aout ;;
- i386-*-moss*) fmt=elf ;;
- i386-*-pe) fmt=coff targ=i386coff em=pe ;;
- i386-*-cygwin32) fmt=coff targ=i386coff em=pe ;;
- i386-*-*nt) fmt=coff targ=i386coff em=pe ;;
- i960-*-bout) fmt=bout ;;
- i960-*-coff) fmt=coff em=ic960 targ=ic960coff ;;
- i960-*-rtems*) fmt=coff em=ic960 targ=ic960coff ;;
- i960-*-nindy*) fmt=bout ;;
- i960-*-vxworks4*) fmt=bout ;;
- i960-*-vxworks5.0) fmt=bout ;;
- i960-*-vxworks5.*) fmt=coff em=ic960 targ=ic960coff ;;
- i960-*-vxworks*) fmt=bout ;;
-
- m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
- fmt=aout em=sun3 ;;
- m68k-motorola-sysv*) fmt=coff targ=m68kcoff em=delta ;;
- m68k-bull-sysv3*) fmt=coff targ=m68kcoff em=dpx2 ;;
- m68k-apollo-*) fmt=coff targ=apollo em=apollo ;;
- m68k-*-sysv4 | m68k-*-elf) # must be before -sysv*
- fmt=elf ;;
- m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
- fmt=coff targ=m68kcoff ;;
- m68k-*-hpux*) fmt=hp300 em=hp300 ;;
- m68k-*-linux*aout*) fmt=aout em=linux ;;
- m68k-*-linux*) fmt=elf em=linux ;;
- m68k-*-lynxos*) fmt=coff targ=m68kcoff
- em=lynx ;;
- m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
- m68k-apple-aux*) fmt=coff targ=m68kcoff em=aux ;;
- m68k-*-psos*) fmt=elf em=psos;;
-
- m88k-motorola-sysv3*) fmt=coff targ=m88kcoff em=delt88 ;;
- m88k-*-coff*) fmt=coff targ=m88kcoff ;;
-
- # don't change em like *-*-bsd does
- mips-dec-netbsd*) fmt=elf targ=mips-lit endian=little ;;
- mips-dec-bsd*) fmt=aout targ=mips-lit ;;
- mips-sony-bsd*) fmt=ecoff targ=mips-big ;;
- mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
- mips-*-ultrix*) fmt=ecoff targ=mips-lit endian=little ;;
- mips-*-osf*) fmt=ecoff targ=mips-lit endian=little ;;
- mips-*-ecoff*) fmt=ecoff
- case "$endian" in
- big) targ=mips-big ;;
- *) targ=mips-lit ;;
- esac
- ;;
- mips-*-ecoff*) fmt=ecoff targ=mips-big ;;
- mips-*-gnu*) fmt=aout
- case "$endian" in
- big) targ=mips-big ;;
- *) targ=mips-lit ;;
- esac
- ;;
- mips-*-irix5*) fmt=elf targ=mips-big ;;
- mips-*-irix*) fmt=ecoff targ=mips-big ;;
- mips-*-riscos*) fmt=ecoff targ=mips-big ;;
- mips-*-sysv*) fmt=ecoff targ=mips-big ;;
- mips-*-elf*) fmt=elf
- case "$endian" in
- big) targ=mips-big ;;
- *) targ=mips-lit ;;
- esac
- ;;
- ppc-*-pe | ppc-*-cygwin32 | ppc-*-winnt*)
- fmt=coff em=pe
- case "$endian" in
- big) targ=ppc-big ;;
- *) targ=ppc-lit ;;
- esac
- ;;
- ppc-*-aix*) fmt=coff ;;
- ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
- fmt=elf
- case "$endian" in
- big) targ=ppc-big ;;
- *) targ=ppc-lit ;;
- esac
- ;;
- ppc-*-linux*) fmt=elf
- case "$endian" in
- big) targ=ppc-big ;;
- *) AC_MSG_ERROR(Linux must be configured big endian) ;;
- esac
- ;;
- ppc-*-solaris*) fmt=elf
- case "$endian" in
- big) AC_MSG_ERROR(Solaris must be configured little endian) ;;
- *) targ=ppc-sol ;;
- esac
- ;;
- ppc-*-rtems*)
- fmt=elf
- case "$endian" in
- big) targ=ppc-big ;;
- *) targ=ppc-lit ;;
- esac
- ;;
- ppc-*-macos* | ppc-*-mpw*)
- fmt=coff em=macos ;;
- ppc-*-netware*) fmt=elf em=ppcnw ;;
-
- sh-*-coff) fmt=coff ;;
-
- ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
- ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
-
- sparc-*-rtems*) fmt=aout ;;
- sparc-*-sunos4*) fmt=aout em=sun3 ;;
- sparc-*-aout | sparc*-*-vxworks*)
- fmt=aout ;;
- sparc-*-coff) fmt=coff ;;
- sparc-*-lynxos*) fmt=coff em=lynx ;;
- sparc-fujitsu-none) fmt=aout ;;
- sparc-*-elf | sparc-*-solaris*)
- fmt=elf ;;
- sparc-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
-
- vax-*-bsd* | vax-*-ultrix*)
- fmt=aout ;;
- vax-*-vms) fmt=vms ;;
-
- z8k-*-coff | z8k-*-sim)
- fmt=coff ;;
-
- w65-*-*) fmt=coff ;;
-
- *-*-aout | *-*-scout)
- fmt=aout ;;
- *-*-nindy*)
- fmt=bout ;;
- *-*-bsd*)
- fmt=aout em=sun3 ;;
- *-*-generic) fmt=generic ;;
- *-*-xray | *-*-hms) fmt=coff ;;
- *-*-sim) fmt=coff ;;
- *-*-elf | *-*-sysv4* | *-*-solaris*)
- AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
- fmt=elf dev=yes ;;
- *-*-vxworks) fmt=aout ;;
- *-*-netware) fmt=elf ;;
- esac
-
- case ${cpu_type}-${fmt} in
- alpha-*) bfd_gas=yes ;;
- arm-*) bfd_gas=yes ;;
- # not yet
- # i386-aout) bfd_gas=preferred ;;
- mips-*) bfd_gas=yes ;;
- ns32k-*) bfd_gas=yes ;;
- ppc-*) bfd_gas=yes ;;
- sparc-*) bfd_gas=yes ;;
- *-elf) bfd_gas=yes ;;
- *-ecoff) bfd_gas=yes ;;
- *-som) bfd_gas=yes ;;
- *) ;;
- esac
-
- # Other random stuff.
-
- # do we need the opcodes library?
- case ${cpu_type} in
- vax | i386)
- ;;
- *)
- need_opcodes=yes
- if test "${shared_opcodes}" = "true"; then
- # A shared libopcodes must be linked against libbfd.
- need_bfd=yes
- fi
- ;;
- esac
-
- test -n "$want_sparc_v9" && AC_DEFINE(SPARC_V9)
-
- case ${cpu}-${vendor}-${os} in
- sparc64-*-elf*) AC_DEFINE(SPARC_ARCH64) ;;
- esac
-
- case ${cpu_type} in
- m68k)
- case ${extra_objects} in
- *m68k-parse.o*) ;;
- *) extra_objects="$extra_objects m68k-parse.o" ;;
- esac
- ;;
- esac
-
- # See if we really can support this configuration with the emulation code.
-
- if test $this_target = $target ; then
- primary_bfd_gas=$bfd_gas
- obj_format=$fmt
- gas_target=$targ
- te_file=$em
-
- if test $bfd_gas = no ; then
- # Can't support other configurations this way.
- break
- fi
- elif test $bfd_gas = no ; then
- # Can't support this configuration.
- break
- fi
-
- # From target name and format, produce a list of supported emulations.
-
- case ${generic_target}-${fmt} in
- mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
- mips-*-*-ecoff) case "$endian" in
- big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
- *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
- esac ;;
- mips-*-*-elf) case "$endian" in
- big) emulation="mipsbelf mipslelf mipself" ;;
- *) emulation="mipslelf mipsbelf mipself" ;;
- esac ;;
- esac
-
- emulations="$emulations $emulation"
-
- done
-
- # Assign floating point type. Most processors with FP support
- # IEEE FP. On those that don't support FP at all, usually IEEE
- # is emulated.
- case ${target_cpu} in
- vax | tahoe ) atof=${target_cpu} ;;
- *) atof=ieee ;;
- esac
-
- case "${obj_format}" in
- "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
- esac
-
- dnl
- dnl Make sure the desired support files exist.
- dnl
-
- if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
- AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
- fi
-
- if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
- AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
- fi
-
- # and target makefile frag
-
- target_frag=${srcdir}/config/${gas_target}.mt
- if test ! -r ${target_frag}; then
- target_frag=/dev/null # ick! but subst_file can't be conditionalized
- fi
- AC_SUBST_FILE(target_frag)
-
- case ${user_bfd_gas}-${primary_bfd_gas} in
- yes-yes | no-no)
- # We didn't override user's choice.
- ;;
- no-yes)
- AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
- ;;
- no-preferred)
- primary_bfd_gas=no
- ;;
- *-preferred)
- primary_bfd_gas=yes
- ;;
- yes-*)
- primary_bfd_gas=yes
- ;;
- -*)
- # User specified nothing.
- ;;
- esac
-
- # Some COFF configurations want these random other flags set.
- case ${obj_format} in
- coff)
- case ${target_cpu_type} in
- i386) AC_DEFINE(I386COFF) ;;
- m68k) AC_DEFINE(M68KCOFF) ;;
- m88k) AC_DEFINE(M88KCOFF) ;;
- esac
- ;;
- esac
-
- # Getting this done right is going to be a bitch. Each configuration specified
- # with --enable-targets=... should be checked for environment, format, cpu, and
- # bfd_gas setting.
- #
- # For each configuration, the necessary object file support code must be linked
- # in. This might be only one, it might be up to four. The necessary emulation
- # code needs to be provided, too.
- #
- # And then there's "--enable-targets=all"....
- #
- # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
-
- formats="${obj_format}"
- emfiles=""
- EMULATIONS=""
- GAS_UNIQ(emulations)
- for em in . $emulations ; do
- case $em in
- .) continue ;;
- mipsbelf | mipslelf)
- fmt=elf file=mipself ;;
- mipsbecoff | mipslecoff)
- fmt=ecoff file=mipsecoff ;;
- esac
- formats="$formats $fmt"
- emfiles="$emfiles e-$file.o"
- EMULATIONS="$EMULATIONS &$em,"
- done
- GAS_UNIQ(formats)
- GAS_UNIQ(emfiles)
- if test `set . $formats ; shift ; echo $#` -gt 1 ; then
- for fmt in $formats ; do
- case $fmt in
- aout) AC_DEFINE(OBJ_MAYBE_AOUT) ;;
- bout) AC_DEFINE(OBJ_MAYBE_BOUT) ;;
- coff) AC_DEFINE(OBJ_MAYBE_COFF) ;;
- ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF) ;;
- elf) AC_DEFINE(OBJ_MAYBE_ELF) ;;
- generic) AC_DEFINE(OBJ_MAYBE_GENERIC) ;;
- hp300) AC_DEFINE(OBJ_MAYBE_HP300) ;;
- ieee) AC_DEFINE(OBJ_MAYBE_IEEE) ;;
- som) AC_DEFINE(OBJ_MAYBE_SOM) ;;
- vms) AC_DEFINE(OBJ_MAYBE_VMS) ;;
- esac
- extra_objects="$extra_objects obj-$fmt.o"
- done
- obj_format=multi
- fi
- if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
- te_file=multi
- extra_objects="$extra_objects $emfiles"
- DEFAULT_EMULATION=`set . $emulations ; echo $2`
- AC_DEFINE(USE_EMULATIONS)
- fi
- AC_SUBST(extra_objects)
- AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS)
- AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION")
-
- files="config/tc-${target_cpu_type}.c config/tc-${target_cpu_type}.h \
- config/obj-${obj_format}.h config/obj-${obj_format}.c \
- config/te-${te_file}.h config/atof-${atof}.c \
- $extra_files"
- links="targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c \
- $extra_links"
-
- case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
- yes-*-coff) need_bfd=yes ;;
- no-*-coff) need_bfd=yes
- AC_DEFINE(MANY_SEGMENTS) ;;
- esac
-
- reject_dev_configs=yes
-
- case ${reject_dev_configs}-${dev} in
- yes-yes) # Oops.
- AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
- ;;
- esac
-
- AC_SUBST(target_cpu_type)
- AC_SUBST(obj_format)
- AC_SUBST(atof)
- dnl AC_SUBST(emulation)
-
- AC_LINK_FILES($files, $links)
-
- case "${primary_bfd_gas}" in
- yes) AC_DEFINE(BFD_ASSEMBLER)
- need_bfd=yes ;;
- esac
-
- # do we need the opcodes library?
- case "${need_opcodes}" in
- yes)
- OPCODES_DEP=../opcodes/libopcodes.a
- OPCODES_LIB='-L../opcodes -lopcodes'
-
- # We need to handle some special cases for shared libraries.
- case "${host}" in
- *-*-sunos*)
- # On SunOS, we must link against the name we are going to install,
- # not -lbfd, since SunOS does not support SONAME.
- if test "${shared_opcodes}" = "true"; then
- OPCODES_LIB='-L../opcodes -l`echo opcodes | sed '"'"'$(program_transform_name)'"'"'`'
- fi
- ;;
- alpha*-*-osf*)
- # On Alpha OSF/1, the native linker searches all the -L
- # directories for any LIB.so files, and only then searches for any
- # LIB.a files. That means that if there is an installed
- # libbfd.so, but this build is not done with --enable-shared, the
- # link will wind up being against the install libbfd.so rather
- # than the newly built libbfd. To avoid this, we must explicitly
- # link against libbfd.a when --enable-shared is not used.
- if test "${shared_opcodes}" != "true"; then
- OPCODES_LIB='../opcodes/libopcodes.a'
- fi
- ;;
- esac
- ;;
- esac
- AC_SUBST(OPCODES_DEP)
- AC_SUBST(OPCODES_LIB)
-
- case "${need_bfd}" in
- yes)
- BFDDEP=../bfd/libbfd.a
- BFDLIB='-L../bfd -lbfd'
- ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
-
- # We need to handle some special cases for shared libraries
- case "${host}" in
- *-*-sunos*)
- # On SunOS, we must link against the name we are going to install,
- # not -lbfd, since SunOS does not support SONAME.
- if test "${shared_bfd}" = "true"; then
- BFDLIB='-L../bfd -l`echo bfd | sed '"'"'$(program_transform_name)'"'"'`'
- fi
- ;;
- alpha*-*-osf*)
- # On Alpha OSF/1, the native linker searches all the -L
- # directories for any LIB.so files, and only then searches for any
- # LIB.a files. That means that if there is an installed
- # libbfd.so, but this build is not done with --enable-shared, the
- # link will wind up being against the install libbfd.so rather
- # than the newly built libbfd. To avoid this, we must explicitly
- # link against libbfd.a when --enable-shared is not used.
- if test "${shared_bfd}" != "true"; then
- BFDLIB='../bfd/libbfd.a'
- fi
- ;;
- esac
- ;;
- esac
- AC_SUBST(BFDDEP)
- AC_SUBST(BFDLIB)
- AC_SUBST(ALL_OBJ_DEPS)
-
- AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}")
- AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}")
- AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}")
- AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}")
- AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}")
-
- AC_PROG_CC
- AC_PROG_INSTALL
-
- AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
-
- # Put this here so that autoconf's "cross-compiling" message doesn't confuse
- # people who are not cross-compiling but are compiling cross-assemblers.
- AC_MSG_CHECKING(whether compiling a cross-assembler)
- if test "${host}" = "${target}"; then
- cross_gas=no
- else
- cross_gas=yes
- AC_DEFINE(CROSS_COMPILE)
- fi
- AC_MSG_RESULT($cross_gas)
-
- dnl ansidecl.h will deal with const
- dnl AC_CONST
- AC_FUNC_ALLOCA
- AC_C_INLINE
-
- # VMS doesn't have unlink.
- AC_CHECK_FUNCS(unlink remove, break)
-
- # Some systems don't have sbrk().
- AC_CHECK_FUNCS(sbrk)
-
- # Some non-ANSI preprocessors botch requoting inside strings. That's bad
- # enough, but on some of those systems, the assert macro relies on requoting
- # working properly!
- GAS_WORKING_ASSERT
-
- # On some systems, the system header files may not declare malloc, realloc,
- # and free. There are places where gas needs these functions to have been
- # declared -- such as when taking their addresses.
- gas_test_headers="
- #ifdef HAVE_MEMORY_H
- #include <memory.h>
- #endif
- #ifdef HAVE_STRING_H
- #include <string.h>
- #endif
- #ifdef HAVE_STDLIB_H
- #include <stdlib.h>
- #endif
- #ifdef HAVE_UNISTD_H
- #include <unistd.h>
- #endif
- "
- GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
- GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
-
- # Does errno.h declare errno, or do we have to add a separate declaration
- # for it?
- GAS_CHECK_DECL_NEEDED(errno, f, int f, [
- #ifdef HAVE_ERRNO_H
- #include <errno.h>
- #endif
- ])
-
- HLDFLAGS=
- RPATH_ENVVAR=LD_LIBRARY_PATH
- # If we have shared libraries, try to set rpath reasonably.
- if test "${shared}" = "true"; then
- case "${host}" in
- *-*-hpux*)
- HLDFLAGS='-Wl,+s,+b,$(libdir)'
- RPATH_ENVVAR=SHLIB_PATH
- ;;
- *-*-irix5*)
- HLDFLAGS='-Wl,-rpath,$(libdir)'
- ;;
- *-*-linux*aout*)
- ;;
- *-*-linux*)
- HLDFLAGS='-Wl,-rpath,$(libdir)'
- ;;
- *-*-sysv4* | *-*-solaris*)
- HLDFLAGS='-R $(libdir)'
- ;;
- esac
- fi
-
- # On SunOS, if the linker supports the -rpath option, use it to
- # prevent ../bfd and ../opcodes from being included in the run time
- # search path.
- case "${host}" in
- *-*-sunos*)
- echo 'main () { }' > conftest.c
- ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
- if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
- :
- elif grep 'No such file' conftest.t >/dev/null 2>&1; then
- :
- elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
- :
- elif test "${shared}" = "true"; then
- HLDFLAGS='-Wl,-rpath=$(libdir)'
- else
- HLDFLAGS='-Wl,-rpath='
- fi
- rm -f conftest.t conftest.c conftest
- ;;
- esac
- AC_SUBST(HLDFLAGS)
- AC_SUBST(RPATH_ENVVAR)
-
- dnl This must come last.
- AC_OUTPUT(Makefile doc/Makefile .gdbinit:gdbinit.in)
-